layui.use(['table'], function () {
    let $ = layui.jquery;
    let table = layui.table;
    var treeTable = layui.treeTable;

    loadList();
    toolbar();
    tableActionTool();

    // 列表
    function loadList() {
        treeTable.render({
            elem: '#list',
            url: '/system/menu/list',
            method: 'post',
            height: 'full',
            cellMinWidth: 80,
            page: false,
            cols: [[
                {field: 'id', title: 'ID', width: 80},
                {
                    field: 'name', title: '名称', width: 300, templet: function (d) {
                        var result = [];
                        if(d.icon){
                            result.push('<i class="layui-icon ' + d.icon + '"></i> ')
                        }
                        result.push(d.name);
                        return result.join('');
                    }
                },
                {
                    field: 'markStatus', title: '状态', width: 80, templet: function (d) {
                        switch (d.markStatus) {
                            case 0:
                                return '正常';
                            case -1:
                                return '删除';
                            default:
                                return '其它';
                        }
                    }
                },
                {field: 'action', title: '操作', width: 160, templet: '#dataActionBar'},
                {field: 'createTime', title: '创建 时间', width: 180},
                {field: 'createUser', title: '创建 人', width: 80},
                {field: 'updateTime', title: '更新 时间', width: 180},
                {field: 'updateUser', title: '更新 人', width: 80}
            ]],
            error: function (res, msg) {
                console.log(res, msg)
            },
            skin: 'nob',
            toolbar: '#toolbar',
            defaultToolbar: ['filter', 'exports', 'print'],
            tree: {
                view: {
                    showIcon: false // 不显示 节点图标
                }
            }
        });
    }

    // 工具栏
    function toolbar() {
        table.on('toolbar(list)', function (obj) {
            switch (obj.event) {
                case 'add':
                    add();
                    break;
            }
        });

        function add() {
            layer.open({
                type: 2,
                title: '新增菜单',
                shade: 0.1,
                area: ['95%', '95%'],
                content: "/system/menu/add/"
            });
        }
    }

    // 表格项操作按钮
    function tableActionTool() {
        table.on('tool(list)', function (obj) {
            switch (obj.event) {
                case 'edit':
                    edit(obj);
                    break;
                case 'addChildren':
                    addChildren(obj);
                    break;
            }
        });

        // 编辑
        function edit(obj) {
            layer.open({
                type: 2,
                title: '编辑 id:' + obj.data['id'],
                shade: 0.1,
                area: ['95%', '95%'],
                content: '/system/menu/edit/' + obj.data['id'] + '/'
            });
        }

        // 添加子级
        function addChildren(obj) {
            layer.open({
                type: 2,
                title: '添加子级',
                shade: 0.1,
                area: ['95%', '95%'],
                content: "/system/menu/add/?parentId=" + obj.data['id']
            });
        }
    }

})